home *** CD-ROM | disk | FTP | other *** search
- // Personnell DataBase
- // (C) Copyright 1992 Campbell Soup Company by Andrew Frantz
- // CScctr.CPP
- // contains the dialog and paradox engine source for costctr.db
- // CIS --- 70712,3547
- // ====================================================================
- #include "csdudes.hpp"
- // ====================================================================
- void PXCostCtr::PXCostCtr()
- {
- char path[80];
- strcpy(path, (char *) DATAPATH);
- strcat(path, "\\");
- strcat(path, "COSTCTR");
- int err;
-
- if((err = open(path, NULL)) != PXSUCCESS)
- {
- cerr << PXErrMsg(err) << endl;
- cerr << "Hit a Key" << endl;
- getch();
- exit(0);
- }
- InitFields();
- if(recfirst())
- {
- cerr << "Error getting first record" << endl;
- cerr << "Hit a Key" << endl;
- getch();
- exit(0);
- }
- }
- // =====================================================================
- int PXCostCtr::InitFields()
- {
- int i = 0;
-
- fldptr [i++] = &CostCtr;
- fldptr [i++] = &CCDescription;
- fldptr [i++] = &ManagerUserName;
- fldptr [i] = NULL;
-
- CostCtr.setinfo(*this, "CostCtr");
- CCDescription.setinfo(*this, "CCDescription");
- ManagerUserName.setinfo(*this, "ManagerUserName");
- return (PXSUCCESS);
- }
- // =====================================================================
- void PXCostCtr::AddRecord(CostCtrXferBuffer *data)
- {
- CostCtr = data->CostCtr;
- CCDescription = data->CCDescription;
- ManagerUserName = data->ManagerUserName;
-
- int err;
- if((err = recappend()) != PXSUCCESS)
- {
- messageBox(PXErrMsg(err), mfError);
- }
- }
- // =====================================================================
- void PXCostCtr::ChangeRecord(CostCtrXferBuffer *data)
- {
- CostCtr = data->CostCtr;
- CCDescription = data->CCDescription;
- ManagerUserName = data->ManagerUserName;
-
- recupdate(); // error handling done in recupdate()
- }
- // =====================================================================
- int PXCostCtr::FindRecord(char *data)
- {
- int err = CostCtr.search(data, SEARCHFIRST);
-
- return(err);
- }
- // =====================================================================
- CostCtrXferBuffer PXCostCtr::DisplayRecord()
- {
- CostCtrXferBuffer data;
-
- recget();
-
- CostCtr.get();
- CCDescription.get();
- ManagerUserName.get();
-
- strncpy(data.CostCtr, CostCtr, sizeof(data.CostCtr));
- strncpy(data.CCDescription, CCDescription, sizeof(data.CCDescription));
- strncpy(data.ManagerUserName, ManagerUserName, sizeof(data.ManagerUserName));
-
- return(data);
- }
- // ====================================================================
- TCostCtrDlg::TCostCtrDlg(const char *title, int type)
- : TDialog( TRect( 0, 0, 80, 23), title ),
- TWindowInit(&TCostCtrDlg::initFrame)
- {
- DlgType=type;
-
- // initialize the struct to 0
- cmClear(); // init dlg structs
-
- insert(new TInputLine(TRect(25,4,31,5), 4));
- insert(new TInputLine(TRect(25,6,53,7), 26));
- insert(new TInputLine(TRect(25,8,40,9), 13));
-
- insert(new TStaticText(TRect(6,4,13,5), "CostCtr"));
- insert(new TStaticText(TRect(6,6,17,7), "Description"));
- insert(new TStaticText(TRect(6,8,21,9), "ManagerUserName"));
-
- switch(DlgType)
- {
- case AddDlg:
- insert( new TButton(TRect(3,16,13,18), "~A~dd", cmAddRec, bfDefault | bfBroadcast));
- insert(new TButton(TRect(15,16,25,18), "~C~lear", cmClearRec, bfNormal | bfBroadcast));
- break;
- case EditDlg:
- insert(new TButton(TRect(3,16,13,18), "~F~ind", cmFindRec, bfDefault | bfBroadcast));
- insert(new TButton(TRect(15,16,25,18), "~C~hange", cmChangeRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(28,16,40,18), "~D~elete", cmDeleteRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(3,19,13,21), "~N~ext", cmNextRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(15,19,25,21), "~P~rev", cmPrevRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(28,19,39,21), "Fi~r~st", cmFirstRec, bfNormal | bfBroadcast));
- insert(new TButton(TRect(41,19,51,21), "~L~ast", cmLastRec, bfNormal | bfBroadcast));
- setDlgStructs();
- break;
- default:
- break;
- }
-
- selectNext(False);
- }
- // =====================================================================
- void TCostCtrDlg::handleEvent(TEvent& event)
- {
- TDialog::handleEvent(event);
- if( event.what == evBroadcast )
- {
- switch( event.message.command )
- {
- case cmAddRec:
- cmAdd();
- break;
- case cmClearRec:
- cmClear();
- break;
- case cmFirstRec:
- cmFirst();
- break;
- case cmPrevRec:
- cmPrev();
- break;
- case cmLastRec:
- cmLast();
- break;
- case cmNextRec:
- cmNext();
- break;
- case cmChangeRec:
- cmChange();
- break;
- case cmDeleteRec:
- cmDelete();
- break;
- case cmFindRec:
- cmFind();
- break;
- case cmsTestQuit:
- cmTestQuit();
- break;
- default:
- return;
- }
- clearEvent( event ); // clear event after handling
- }
- }
- // =====================================================================
- void TCostCtrDlg::cmTestQuit()
- {
- switch(DlgType)
- {
- case EditDlg:
- if(messageBox(mfYesButton | mfNoButton,
- "Do You Need To Save The Changes To\nThis Record ??") == cmYes)
- {
- cmChange();
- }
- break;
- case AddDlg:
- if(messageBox(mfYesButton | mfNoButton,
- "Do You Wish To Save This Record ??") == cmYes)
- {
- cmAdd();
- }
- break;
- default:
- break;
- }
- }
- // =====================================================================
- void TCostCtrDlg::cmAdd()
- {
- getData((void *) &costCtrXferStruct);
- TPersonnellApp::CostCtrDB->AddRecord(&costCtrXferStruct);
- cmClear();
- }
- // =====================================================================
- void TCostCtrDlg::cmClear()
- {
- memset(&costCtrXferStruct, 0x0, sizeof costCtrXferStruct);
- setData((void *) &costCtrXferStruct);
- memset(&tempCostCtr, 0x0, sizeof tempCostCtr);
- }
- // =====================================================================
- void TCostCtrDlg::cmChange()
- {
- getData((void *) &costCtrXferStruct);
- TPersonnellApp::CostCtrDB->ChangeRecord(&costCtrXferStruct);
- setDlgStructs();
- }
- // =====================================================================
- void TCostCtrDlg::cmDelete()
- {
- if(messageBox(mfYesButton | mfNoButton,
- "Warning You Are About To Delete\nThis Record !!\nAre You Sure ??") == cmYes)
- {
- TPersonnellApp::CostCtrDB->recdelete();
- setDlgStructs();
- }
- }
- // ====================================================================
- void TCostCtrDlg::cmFirst()
- {
- checkDlg();
- TPersonnellApp::CostCtrDB->recfirst();
- setDlgStructs();
- }
- // ====================================================================
- void TCostCtrDlg::cmLast()
- {
- checkDlg();
- TPersonnellApp::CostCtrDB->reclast();
- setDlgStructs();
- }
- // ====================================================================
- void TCostCtrDlg::cmPrev()
- {
- checkDlg();
- TPersonnellApp::CostCtrDB->recprev();
- setDlgStructs();
- }
- // ====================================================================
- void TCostCtrDlg::cmNext()
- {
- checkDlg();
- TPersonnellApp::CostCtrDB->recnext();
- setDlgStructs();
- }
- // =====================================================================
- void TCostCtrDlg::cmFind()
- {
- int err;
- char findvar[25];
-
- strcpy(findvar, "");
- checkDlg();
- if(inputBox("Find Cost Ctr", "Enter Cost Ctr:" ,findvar, 4) == cmOK)
- {
- if((err = TPersonnellApp::CostCtrDB->FindRecord(findvar)) != PXSUCCESS)
- messageBox(PXErrMsg(err), mfError);
- }
- setDlgStructs();
- }
- // =====================================================================
- void TCostCtrDlg::setDlgStructs()
- {
- tempCostCtr = costCtrXferStruct = TPersonnellApp::CostCtrDB->DisplayRecord();
- setData((void *) &costCtrXferStruct);
- }
- // =====================================================================
-